#ifndef MAINUI_H
#define MAINUI_H
#include<operation.h>
#include <QMainWindow>
#include <qstandarditemmodel.h>
#include "QDebug"
#include "QInputDialog"
#include "QFile"
#include "completertextedit.h"
#include <QTableWidget>
#include <QFileDialog>
#include <QDesktopServices>
#include <QMessageBox>
#include <QAxObject>
#include<UserManager.h>
#include "syntaxhighlighter.h"
#include <QCompleter>
#include <qtextedit.h>
#include "add_column_dialog.h"
#include "logui.h"
QT_BEGIN_NAMESPACE
namespace Ui { class mainUI; }
QT_END_NAMESPACE
class mainUI : public QMainWindow
{
    Q_OBJECT

public:
    mainUI(QWidget *parent = nullptr);
    ~mainUI();

    QStandardItem *currentItem;

private slots:
    void on_treeView_customContextMenuRequested(const QPoint &pos);

    void on_treeView_doubleClicked(const QModelIndex &index);

    void slotTreeMenuAdd(bool checked = false);//添加表

    void slotTreeMenuDelete(bool checked = false);//删除表

    void on_add_row_button_clicked();

    void on_add_column_button_2_clicked();

    void on_add_column_button_clicked();

    void on_query_button_clicked();

    void on_delete_row_button_clicked();

    void on_delete_button_clicked();

    void on_pushButton_2_clicked();

    void on_delete_column_button_clicked();

    void on_switch_user_button_clicked();

    void on_export_button_clicked();

    void on_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles);

    void on_tableView_doubleClicked(const QModelIndex &index);

    void on_pushButton_clicked();

    void on_treeView_collapsed(const QModelIndex &index);

    void on_log_button_clicked();

private:
    Ui::mainUI *ui;
   // QStandardItemModel *tree_model; //树形结构的模型
    int attribute_num;//初始化属性个数，即列的个数
    int row_num;//初始化行的个数
    QString table_name;
    QString current_str;//双击后的表格数据
    QString update_str;//更改后的表格数据
    QVector<QString> send_sql;//网络传输用的sql语句
    CompleterTextEdit* textEdit;


    void init_attribute(QStringList list);//从文件中读取数据,初始化从文件中读取的属性
    void init_row(QVector<QStringList> q);//从文件中读取数据,初始化从文件中读取的行
    void init_treeView();//初始化树形结构
    void init_tableView();//初始化表的结构
    void beautify_UI();
    void Table2ExcelByHtml(QTableView *table,QString title);
    //void create_file(QString);



};
#endif // MAINUI_H
